package org.babyfish.jimmer.sql

@MustBeDocumented
@Retention(AnnotationRetention.RUNTIME)
@Target(AnnotationTarget.CLASS)
annotation class MappedSuperclass(
    /**
     * Can the current type be super type of derived types of any microservices.
     *
     * - If this value is set to true:
     *   - `microServiceName` cannot be specified
     *   - Association property cannot be declared
     *   That means current type can be super type of derived types of any microservices.
     * - Otherwise, the `microServiceName` of this annotation must be equal to
     *   the configuration of derived types
     */
    val acrossMicroServices: Boolean = false,

    /**
     * Can only be specified when `acrossMicroServices` is false
     */
    val microServiceName: String = ""
)
